package com.nccsjz.base;

/**
 * BaseDAO.java文件是所有数据访问类的父类 
 */

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import utils.DBUtils;

/**
 * BaseDAO类是所有数据访问类的父类
 * 
 * @author jason 2009-10-12
 * @since 1.0
 */
public abstract class BaseDAO {

	/** con Connection 数据库连接对象 */
	protected Connection con;
	
	/** stmt Statement 命令执行对象 */
	protected Statement stmt;
	
	/** pstmt PreparedStatement 预编译命令执行对象 */
	protected PreparedStatement pstmt;
	
	/** cstmt CallableStatement 存储过程调用命令执行对象*/
	protected CallableStatement cstmt;
	
	/** rs ResultSet 结果集存储 */
	protected ResultSet rs;
	

	/**
	 * 带参构造函数，所有子类必须调用本方法
	 * 
	 * @param con
	 */
	public BaseDAO(Connection con){
		this.con = con;	
	}
	
	/**
	 * closeAll方法关闭ResultSet对象和Statement对象
	 * 
	 * @param rs	结果集对象
	 * @param stmt	命令执行对象
	 * @throws SQLException
	 */
	protected void closeAll(ResultSet rs,Statement stmt) throws SQLException{
		if(rs != null){
			DBUtils.CloseRs(rs);
		}
		if(stmt != null){
			DBUtils.CloseStmt(stmt);
		}
	}
}
